#ifndef RULE_H
#define RULE_H

#include <QObject>
#include <QVector>
#include <QDebug>

class Rule
{

public:
    Rule(QString in1, QString in2, QString out);

    /** Accessors for the few private variables we have: */
    const QString& getFirstInput()  const { return m_input_one; }
    const QString& getSecondInput() const { return m_input_two; }
    const QString& getOutput()      const { return m_output; }
    inline void setOutput(const QString& output)    { m_output = output;}
    inline void setFirstInput(const QString& input) { m_input_one = input;}
    inline void setSecondInput(const QString& input){ m_input_two = input;}

private:
    /* For now, we'll assume that there are only 2 inputs, since we know for
     * the mean time, we're trying to get the 3D plot working. Once we get that
     * working, we can expand this class to support ands, ors, and numerous
     * inputs.
     */
    QString m_input_one;
    QString m_input_two;
    QString m_output;

};

QDebug operator<<(QDebug dbg, const Rule &rule);

#endif // RULE_H
